package com.bi.vo;

import com.bi.entity.WideTableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 数据宽表字段视图对象
 * 
 * @author BI Platform Team
 * @since 1.0.0
 */
@Data
public class WideTableFieldVO {

    /**
     * 字段ID
     */
    private Long id;

    /**
     * 宽表ID
     */
    private Long wideTableId;

    /**
     * 字段名称
     */
    private String fieldName;

    /**
     * 显示名称
     */
    private String displayName;

    /**
     * 字段类型
     */
    private WideTableField.FieldType fieldType;

    /**
     * 字段类型描述
     */
    private String fieldTypeDescription;

    /**
     * 字段长度
     */
    private Integer fieldLength;

    /**
     * 精度(数值类型)
     */
    private String precisionScale;

    /**
     * 是否允许为空
     */
    private Boolean nullable;

    /**
     * 默认值
     */
    private String defaultValue;

    /**
     * 字段描述
     */
    private String description;

    /**
     * 是否为显示字段
     */
    private Boolean isDisplayField;

    /**
     * 是否为查询字段
     */
    private Boolean isQueryField;

    /**
     * 排序序号
     */
    private Integer sortOrder;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
}